package linter.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import linter.POJO.DO.ClassData;
import linter.POJO.DO.UserClassPlan;
import linter.POJO.DTO.ClassDataDTO;
import linter.POJO.DTO.classDataUploaderDTO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
* @author 北煜
* @description 针对表【class_data】的数据库操作Service
* @createDate 2024-04-10 11:36:23
*/
public interface ClassDataService extends IService<ClassData> {

    /**
     * @param classDataUploaderDTO class类数据 title，node，content，source等
     * @return 上传成功与否
     */
    String uploadClass(classDataUploaderDTO classDataUploaderDTO);

    /**
     * @return 课程
     */
    PageInfo<ClassDataDTO> getAllClass();

    /**
     * @param list classType列表
     * @return 返回课程
     */
    PageInfo<ClassDataDTO> getLearningClass(List<UserClassPlan> list);

    /**
     * @param classId 课程ID
     * @return 课程内容
     */
    ClassDataDTO getClassByClassId(Integer classId);

    /**
     * @param file 上传的文件
     * @param classType 课程类型
     * @param className 课程名字
     * @param classId 课程id
     * @return 成功与否
     */
    String uploadClassImage(MultipartFile file, String classType, String className, Long classId);

    /**
     * @param classTitle 课程标题
     * @param classType 课程类型
     * @return 查到的课程
     */
    PageInfo<ClassDataDTO> getClassByClassName(String classTitle, String classType);

    /**
     * @param uuid 用户ID
     * @return 返回完成的课程
     */
    PageInfo<ClassDataDTO> getFinishClass(Long uuid);

    /**
     * @param pageNum 页数
     * @return 返回课程数据
     */
    PageInfo<classDataUploaderDTO> AllClass(int pageNum);

    /**
     * @param classType 课程类型
     * @return 返回课程
     */
    PageInfo<ClassData> getClassByClassType(String classType);
}
